package org.btik.context.thread;

/**
 * @author lustre
 * @version 1.0
 * @since 2021/5/15 12:37
 * 由系统启停控制的线程,由spring 创建时自动启停
 */
public interface SystemControlAble {

    /**
     * 启动
     */
    void start();

    /**
     * 重启
     */
    default void restart() {
        throw new UnsupportedOperationException("restart is not support!");
    }

    /**
     * 停止
     *
     * @param msg 停止原因
     */
    void shutdown(String msg);


    /**
     * 获取名称
     *
     * @return 名称
     */
    String getName();


    /**
     * 是否存活
     *
     * @return 是否存活
     */
    boolean isAlive();


}
